package com.nccsjz.back.section.utils;

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import java.util.ResourceBundle;
import java.util.Set;

import org.apache.commons.lang.StringUtils;

import utils.ConfigUtils;
import utils.FileUtils;

import com.nccsjz.back.section.dao.SectionDAO;
import com.nccsjz.back.section.service.SectionService;
import com.nccsjz.base.BaseService;
import com.nccsjz.pojo.Section;
import com.nccsjz.utils.CardException;
import com.nccsjz.utils.JsFileUtils;

/**
 * LevelOneUtils类包含了与创建一级栏目相关的方法
 * 
 * @author jason
 * 
 */
public class LevelOneUtils extends BaseService {
	/**
	 * createLevelOneSectionsJSFile方法用于生成栏目levelOneJs数据文件
	 * 
	 * @param realJsFileName
	 *            js数据文件物理路径
	 * @param dbSections
	 *            数据库中保存的栏目内容
	 * @param strStaticLevelOnesInfo固定一级栏目信息
	 * @throws IOException
	 */
	public static void createLevelOneSectionsJSFile(String realJsFileName,
			List<Section> dbSections, String strStaticLevelOnesInfo)
			throws IOException {
		StringBuffer strBuf = new StringBuffer();
		// 创建js二维数组
		strBuf.append("var arrLevelOne = [");
		if (StringUtils.isNotBlank(strStaticLevelOnesInfo)) {
			strBuf.append(strStaticLevelOnesInfo).append(",");
		}
		for (int i = 0; i < dbSections.size(); i++) {
			Section s = dbSections.get(i);
			// 创建js一维数组
			strBuf.append("[");
			strBuf.append("\'");
			strBuf.append(s.getTitle());
			strBuf.append("\'");
			strBuf.append(",");
			// 添加title信息
			strBuf.append("\'");
			strBuf.append(StringUtils.isBlank(s.getFileName())?"#":s.getFileName());
			strBuf.append("\'");
			strBuf.append("]");
			if (i < dbSections.size() - 1) {// 如果添加多于一个栏目，则添加“，”
				strBuf.append(",");
			}
		}
		strBuf.append("]");
		// 创建js文件之前，首先检查原文件是否存在,如果存在就直接删除
		FileUtils.deleteFile(realJsFileName);
		// 保存js文件
		FileUtils.saveFile(realJsFileName, strBuf.toString());
	}
	
	/**
	 * 获取固定一级栏目信息,例如['首页','index.jsp'],['xxx',''],
	 * 注意：固定一级栏目对应的页面通常放在网站根目录下，并且是已有的
	 * 
	 * @param levelOnePath
	 * @return 一级栏目信息字符串
	 */
	public static String getStaticLevelOnesInfo() {
		StringBuffer strBuf = new StringBuffer();
		// 获取固定的一级栏目信息
		ResourceBundle rootConfig = ConfigUtils.getRootConfig();
		Set<String> keySet = rootConfig.keySet();
		if (keySet == null || keySet.size() == 0) {
			return "";
		}
		String[] arrKeys = keySet.toArray(new String[] {});
		for (int i = 0; i < arrKeys.length; i++) {
			strBuf.append("[");
			strBuf.append("\'");
			strBuf.append(rootConfig.getString(arrKeys[i]));
			strBuf.append("\'");
			strBuf.append(",");
			strBuf.append("\'");
			strBuf.append(arrKeys[i]);
			strBuf.append("\'");
			strBuf.append("]");
			if (i < arrKeys.length - 1) {
				strBuf.append(",");
			}
		}
		return strBuf.toString();
	}

	

}
